package com.tqw.order.service;

import com.tqw.entity.Result;
import com.tqw.order.vo.*;
import com.tqw.vo.PageResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * @Author: czm
 * @Date: 2022/04/07/17:56
 * @Description:
 */
public interface OrderService {

    /**
     * 通过用户ID和商品ID查询对应的商品信息
     * @param clientId
     * @param ItemId
     * @return
     */
    OrderConfirmVO getOrderItemInfo(Integer clientId,Integer ItemId);

    /**
     * 保存订单
     * @param clientId
     * @param orderSubmitVO
     * @return
     */
    Result submit(Integer clientId, OrderSubmitVO orderSubmitVO);

    /**
     * 获取订单列表
     * @param pageResult
     * @return
     */
    PageOrderResult getOrderList(PageOrderResult pageResult);

    /**
     * 获取订单详情
     * @param orderId
     * @return
     */
    OrderDescVO getOrderDesc(String orderId,Integer clientId);

    /**
     * 删除订单
     * @param orderId
     */
    void delete(String orderId);

    /**
     * 取消订单
     * @param orderId
     */
    void cancel(String orderId);

    /**
     * 获取订单支付信息
     * @param orderId
     * @return
     */
    OrderPayInfoVO getOrderPayInfo(String orderId);

    /**
     * 获取订单支付信息
     * @param orderPayInfoVO
     */
    void orderPay(OrderPayInfoVO orderPayInfoVO);

    /**
     *更新订单状态
     * @param orderId
     */
    void updateOrder(String orderId);

    /**
     * 获取订单成功支付后的信息
     * @param orderId
     * @return
     */
    OrderPaySuccessVO getOrderPaySuccessInfo(String orderId);

    /**
     * 更新订单支付状态以及更新商品状态
     * @param orderId
     */
    void updatePayOrder(String orderId);

}


